package com.kafang.learnaid.demo1.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kafang.learnaid.demo1.entity.EmployeeEntity;
import com.kafang.learnaid.demo1.service.EmployeeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/employee")
public class EmployeeController {
    @Autowired
    private EmployeeService employeeService;

    @GetMapping("/list")
    public IPage<EmployeeEntity> getEmployeeList() {
        // 创建一个分页对象，这里我们不设置具体的分页参数，因此会查询所有数据
        Page<EmployeeEntity> page = new Page<>(1, 2); // 假设我们最多只想要10000条数据，实际中应该根据需求设置
        return employeeService.page(page, null); // 第二个参数是查询条件，这里我们不需要，所以传入null
    }

    // 如果只想获取所有数据而不分页，可以使用以下方式：
    // 但注意：对于大量数据，这可能会导致性能问题或内存溢出
    @GetMapping("/listAll")
    public List<EmployeeEntity> getAllEmployees() {
        return employeeService.getAll();
    }

    @GetMapping("/listAllAuto")
    public List<EmployeeEntity> getAllEmployeesAuto() {
        return employeeService.list();
    }

    @RequestMapping("/hello")
    @ResponseBody
    public String hello(@RequestParam(name = "name", defaultValue = "unknown user") String name) {
        return "Hello " + name;
    }
}
